Adapting C++ Exception Handling to an Extended COM Exception Model

نویسندگان

  • Bjørn Egil Hansen
  • Henrik Fredholm
چکیده

The reliability of a software system is to a high degree determined by the reliability of the software components comprising the system [KriMat97]. For a software component to be reliable it must be able recover various exceptions or failures that may arise at run-time, i.e. it must be fault tolerant. Code for exception detection, handling, and signalling often amounts to a substantial portion of the code. This is especially the case in a multi-language environment, mixing different exception models, and requiring transformation between different exception representations. To allow flexible system configuration and system evolution, e.g. making changes to a component, replacing a component with another, or adding new components, each of the components should have minimum dependency on the other components. Loose coupling between components is also important with respect to exception handling and the mechanisms used. As argued in [Cri95], a termination mechanism mixes well with the information hiding principles underlying data abstraction, and consequently also component based systems. The focus should be on the local transition and consistent local state of the component and on exceptions that may arise during a state transition. It is the responsibility of the developer of the component to detect, handle, and signal exceptions based on the state of the component, the arguments of the call, and the results from lowerlevel components. In software development project there are always conflicts between different requirements, and the development team has to make trade-offs between time-to-market, functional requirements, and non-functional requirements, like reliability. The resources used on reliability are often scarce, hence it is important to concentrate the effort on those exception situations that contributes to the overall reliability of the system. Whenever reliability is sacrificed for other requirements, the failure situations should be clearly distinguishable from correct behaviour and easily traceable in the code. If the system reliability turns out to be unacceptable it should be possible to increase the overall reliability by improving individual components of the system, i.e. taking control over more of the failure situations. This paper is based on work done in the BRIX team in DNV IT Solutions. The main purpose of this group is to provide the various application development teams with common solutions to software technical needs. Most BRIX solutions are based on Microsoft's COM technology and C++ as implementation language. In section 2 the differences between C++ exception handling and COM exception handling are briefly outlined. Section 3 describes the BRIX language independent exception model, which is based on the COM exception model. In section four we present how the BRIX exception model is supported at C++ level. Finally, in section 4 we draw some conclusions.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A proposition for exception handling in multi-agent systems

Reliability is a major issue in new software architectures (such as multi-agent systems or software component based architectures) as they aim at integrating separately developed software parts. In this paper, we focus on both multi-agent systems and a crucial feature to ensure software reliability: an appropriate exception handling system. We first introduce the terminology and main concepts o...

متن کامل

Exception Handling in CSCW Applications in Pervasive Computing Environments

In this paper we present conceptual foundations of an exception handling model for context-aware CSCW applications. Human participation in the recovery actions is an integral part of this model. Role abstraction is provided with an exception interface through which the role members can perform exception handling actions. Exception handling involving multiple role members is also supported throu...

متن کامل

Model Checking C++ with Exceptions

We present an extension of the DIVINE software model checker to support programs with exception handling. The extension consists of two parts, a language-neutral implementation of the LLVM exception-handling instructions, and an adaptation of the C++ runtime for the DIVINE/LLVM exception model. This constitutes an important step towards support of both the full C++ specification and towards ver...

متن کامل

Monads and Adjunctions for Global Exceptions

In this paper, we look at two categorical accounts of computational effects (strong monad as a model of the monadic metalanguage, adjunction as a model of call-bypush-value with stacks), and we adapt them to incorporate global exceptions. In each case, we extend the calculus with a construct, due to Benton and Kennedy, that fuses exception handling with sequencing. This immediately gives us an ...

متن کامل

A Novel Exception Handling Scheme for Out Patient Workflow in a Wireless Handheld Hospital Environment

Thehealthcare services are among the fastest growing service markets deploying wireless technologies. As healthcare organizations continue to become more distributed, mobile handheld devices and their associated support has evolved into a viable platform for these organizations. However, one factor that hinders the deployment of the handheld technology is the lack of support for exception handl...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2000